﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

using Utilities.IO;
using System.Drawing;

namespace Utilities.Media.Video
{
    public abstract class VideoStream : DataStream
    {
        public short NumChannels { get; protected set; } // 3D picture ?

        public float FrameRate { get; protected set; }
        public Size FrameSize { get; protected set; } // Separate Width/Height ?

        //public TimeSpan BufferDuration { get; set; } // Number of frames in cache

        public TimeSpan TimePosition { get; protected set; }

        public VideoStream(Stream stream) : base(stream)
        {
            TimePosition = TimeSpan.Zero;
        }

        public abstract VideoFrame ReadBuffer();
        public abstract void WriteBuffer(VideoFrame buffer);
    }
}
